home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 081-090 / amok82 / plot / source / plotzeichnen2.mod < prev    next >
Text File  |  1993-11-04  |  23KB  |  607 lines

  1. (***********************************************************************
  2.  
  3.    :Program.    PlotZeichnen2.mod
  4.    :Author.     Stefan Köhle
  5.    :Address.    Erhardtstr. 10
  6.                 W-7033 Herrenberg
  7.    :Phone.      07032/5146
  8.    :shortcut.
  9.    :Version.    1.0
  10.    :Date.       15.11.92
  11.    :Copyright.  nix
  12.    :Language.   Modula-II.
  13.    :Translator. M2Amiga 4.107d
  14.    :Imports.    PlotInit,MyMathlib 
  15.    :UpDate.
  16.    :Contents.
  17.    :Remark.
  18.  
  19. **********************************************************************)
  20.  
  21. IMPLEMENTATION MODULE PlotZeichnen2;
  22.  
  23.  
  24. FROM MyMathLib   IMPORT FFPToInt ;
  25. FROM PlotInit    IMPORT PlotBasePtr ;
  26.  
  27. FROM SYSTEM      IMPORT ADR ;
  28. FROM GraphicsL   IMPORT AreaMove,AreaDraw,AreaEnd,Text,
  29.                         SetAPen,SetDrMd,Move,Draw ;
  30. FROM GraphicsD   IMPORT jam1;
  31. FROM String      IMPORT Length ;
  32. FROM GfxMacros   IMPORT SetDrPt ;
  33.  
  34.  
  35.  
  36. PROCEDURE KastenZeichnen(VAR Pb: PlotBasePtr) ;  (***************************)
  37.  
  38.  BEGIN
  39.  
  40.    SetAPen(Pb^.Rp,1) ;
  41.    SetDrMd(Pb^.Rp,jam1) ;
  42.  
  43.    IF Pb^.GrosseBitmap THEN
  44.  
  45.       Move(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0) ;         (* P1  *)
  46.       Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0+720) ;     (* P2  *)
  47.       Draw(Pb^.Rp,Pb^.KastenX0-432,Pb^.KastenY0+1152); (* P3  *)
  48.       Draw(Pb^.Rp,Pb^.KastenX0-432,Pb^.KastenY0+432) ; (* P4  *)
  49.       Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0) ;         (* P1  *)
  50.       Draw(Pb^.Rp,Pb^.KastenX0+1152,Pb^.KastenY0) ;    (* P5  *)
  51.       Draw(Pb^.Rp,Pb^.KastenX0+1152,Pb^.KastenY0+720); (* P6  *)
  52.       Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0+720) ;     (* P2  *)
  53.       Move(Pb^.Rp,Pb^.KastenX0-432,Pb^.KastenY0+1152); (* P3  *)
  54.       Draw(Pb^.Rp,Pb^.KastenX0+720,Pb^.KastenY0+1152); (* P7  *)
  55.       Draw(Pb^.Rp,Pb^.KastenX0+1152,Pb^.KastenY0+720); (* P6  *)
  56.  
  57.    ELSE
  58.  
  59.       Move(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0) ;         (* P1  *)
  60.       Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0+240) ;     (* P2  *)
  61.       Draw(Pb^.Rp,Pb^.KastenX0-144,Pb^.KastenY0+384) ; (* P3  *)
  62.       Draw(Pb^.Rp,Pb^.KastenX0-144,Pb^.KastenY0+144) ; (* P4  *)
  63.       Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0) ;         (* P1  *)
  64.       Draw(Pb^.Rp,Pb^.KastenX0+384,Pb^.KastenY0) ;     (* P5  *)
  65.       Draw(Pb^.Rp,Pb^.KastenX0+384,Pb^.KastenY0+240) ; (* P6  *)
  66.       Draw(Pb^.Rp,Pb^.KastenX0,Pb^.KastenY0+240) ;     (* P2  *)
  67.       Move(Pb^.Rp,Pb^.KastenX0-144,Pb^.KastenY0+384);  (* P3  *)
  68.       Draw(Pb^.Rp,Pb^.KastenX0+240,Pb^.KastenY0+384) ; (* P7  *)
  69.       Draw(Pb^.Rp,Pb^.KastenX0+384,Pb^.KastenY0+240) ; (* P6  *)
  70.  
  71.    END (* IF *) ;
  72.  
  73. END KastenZeichnen ;
  74.  
  75.  
  76.  
  77. PROCEDURE XAchseZeichnen(VAR Pb: PlotBasePtr) ;   (************************)
  78.  
  79.  VAR P1x,P1y,P2x: INTEGER ;
  80.  
  81.  BEGIN
  82.  
  83.    SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  84.  
  85.    IF Pb^.GrosseBitmap THEN
  86.  
  87.       SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  88.  
  89.       Pb^.A.XNull := -3*(FFPToInt(Pb^.B.XLinks*96.0/Pb^.B.DeltaX));
  90.       IF Pb^.A.XNull < 0 THEN Pb^.A.XNull := 0 ; END ;
  91.       IF Pb^.A.XNull > 1152 THEN Pb^.A.XNull := 1152 ; END ;
  92.  
  93.       Pb^.A.YNull := -3*FFPToInt(Pb^.B.YHinten*48.0/Pb^.B.DeltaY) ;
  94.       IF Pb^.A.YNull < 0   THEN Pb^.A.YNull := 0   ; END ;
  95.       IF Pb^.A.YNull > 432 THEN Pb^.A.YNull := 432 ; END ;
  96.  
  97.       Pb^.A.ZNull := 3*FFPToInt(Pb^.B.ZOben/Pb^.B.DeltaZ *60.0) ;
  98.       IF Pb^.A.ZNull < 0  THEN Pb^.A.ZNull := 0  ; END ;
  99.       IF Pb^.A.ZNull > 720 THEN Pb^.A.ZNull := 720 ; END ;
  100.  
  101.       P1x :=Pb^.KastenX0-Pb^.A.YNull ;
  102.       P1y :=Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull ;
  103.       P2x :=Pb^.KastenX0+1152-Pb^.A.YNull ;
  104.  
  105.       Move(Pb^.Rp,P1x+1,P1y-1) ;
  106.       Draw(Pb^.Rp,P2x-1,P1y-1) ;
  107.       Move(Pb^.Rp,P1x+1,P1y+1) ;
  108.       Draw(Pb^.Rp,P2x-1,P1y+1) ;
  109.  
  110.  
  111.       SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  112.  
  113.       Move(Pb^.Rp,P1x,P1y) ;
  114.       Draw(Pb^.Rp,P2x,P1y) ;
  115.  
  116.  
  117.    ELSE
  118.  
  119.       Pb^.A.XNull := -(FFPToInt(Pb^.B.XLinks*96.0/Pb^.B.DeltaX));
  120.       IF Pb^.A.XNull < 0 THEN Pb^.A.XNull := 0 ; END ;
  121.       IF Pb^.A.XNull > 384 THEN Pb^.A.XNull := 384 ; END ;
  122.  
  123.       Pb^.A.YNull := -FFPToInt(Pb^.B.YHinten*48.0/Pb^.B.DeltaY) ;
  124.       IF Pb^.A.YNull < 0   THEN Pb^.A.YNull := 0   ; END ;
  125.       IF Pb^.A.YNull > 144 THEN Pb^.A.YNull := 144 ; END ;
  126.  
  127.       Pb^.A.ZNull := FFPToInt(Pb^.B.ZOben/Pb^.B.DeltaZ *60.0) ;
  128.       IF Pb^.A.ZNull < 0  THEN Pb^.A.ZNull := 0  ; END ;
  129.       IF Pb^.A.ZNull > 240 THEN Pb^.A.ZNull := 240 ; END ;
  130.  
  131.       SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  132.  
  133.  
  134.       Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+1,              (* X-Achse *)
  135.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+1) ;
  136.       Draw(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull-1,
  137.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+1) ;
  138.       Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+1,
  139.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-1) ;
  140.       Draw(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull-1,
  141.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-1) ;
  142.  
  143.  
  144.       SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  145.       Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull,
  146.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
  147.       Draw(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull,
  148.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
  149.  
  150.  
  151.    END (* IF *) ;
  152.  
  153. END XAchseZeichnen ;
  154.  
  155.  
  156.  
  157. PROCEDURE YAchseZeichnen(VAR Pb: PlotBasePtr) ;   (************************)
  158.  
  159.  BEGIN
  160.  
  161.    SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  162.  
  163.    IF Pb^.GrosseBitmap THEN
  164.  
  165.       Move(Pb^.Rp,Pb^.KastenX0+Pb^.A.XNull,
  166.                   Pb^.KastenY0+Pb^.A.ZNull) ;
  167.       Draw(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull,
  168.                   Pb^.KastenY0+432+Pb^.A.ZNull) ;
  169.  
  170.    ELSE
  171.  
  172.       Move(Pb^.Rp,Pb^.KastenX0+Pb^.A.XNull,
  173.                   Pb^.KastenY0+Pb^.A.ZNull) ;
  174.       Draw(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull,
  175.                   Pb^.KastenY0+144+Pb^.A.ZNull) ;
  176.  
  177.    END (* IF *) ;
  178.  
  179. END YAchseZeichnen;
  180.  
  181.  
  182.  
  183. PROCEDURE ZAchseZeichnen(VAR Pb: PlotBasePtr) ;   (************************)
  184.  
  185.  VAR P1x,P1y: INTEGER ;
  186.      OK : BOOLEAN ;
  187.      str        :  ARRAY[0..10] OF CHAR ;
  188.  
  189.  BEGIN
  190.  
  191.    SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  192.  
  193.    IF Pb^.GrosseBitmap THEN
  194.  
  195.       P1x := Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull ; (* Spitze des Pfeils*)
  196.       P1y := Pb^.KastenY0+Pb^.A.YNull-38 ;
  197.  
  198.       SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  199.  
  200.       Move(Pb^.Rp,P1x-1,P1y+758) ;
  201.       Draw(Pb^.Rp,P1x-1,P1y) ;
  202.       Move(Pb^.Rp,P1x-2,P1y+758) ;
  203.       Draw(Pb^.Rp,P1x-2,P1y) ;
  204.  
  205.       Move(Pb^.Rp,P1x+1,P1y+758) ;
  206.       Draw(Pb^.Rp,P1x+1,P1y) ;
  207.       Move(Pb^.Rp,P1x+2,P1y+758) ;
  208.       Draw(Pb^.Rp,P1x+2,P1y) ;
  209.                                                       (* Kasten um Pfeil *)
  210.       OK := AreaMove(Pb^.Rp,P1x-7,P1y+7) ;     (* links unten  *)
  211.       OK := AreaDraw(Pb^.Rp,P1x-7,P1y-3) ;     (* links oben   *)
  212.       OK := AreaDraw(Pb^.Rp,P1x+7,P1y-3) ;     (* rechts oben  *)
  213.       OK := AreaDraw(Pb^.Rp,P1x+7,P1y+7) ;     (* rechts unten *)
  214.       OK := AreaEnd(Pb^.Rp) ;
  215.  
  216.  
  217.       SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  218.  
  219.       Move(Pb^.Rp,P1x,P1y+758) ;                      (* Pfeil *)
  220.       Draw(Pb^.Rp,P1x,P1y) ;
  221.       Move(Pb^.Rp,P1x-4,P1y+4) ;
  222.       Draw(Pb^.Rp,P1x,P1y) ;
  223.       Draw(Pb^.Rp,P1x+4,P1y+4) ;
  224.  
  225.       IF Pb^.Beschriftung THEN
  226.  
  227.          SetAPen(Pb^.Rp,0) ;                      (* Hintergrundfarbe *)
  228.  
  229.                                                       (* Kasten um Z *)
  230.          OK := AreaMove(Pb^.Rp,P1x+7,P1y+14) ;    (* links unten  *)
  231.          OK := AreaDraw(Pb^.Rp,P1x+7,P1y) ;       (* links oben   *)
  232.          OK := AreaDraw(Pb^.Rp,P1x+20,P1y) ;      (* rechts oben  *)
  233.          OK := AreaDraw(Pb^.Rp,P1x+20,P1y+14) ;   (* rechts unten *)
  234.          OK := AreaEnd(Pb^.Rp) ;
  235.  
  236.          SetAPen(Pb^.Rp,1) ;                      (* Vordergrundfarbe *)
  237.  
  238.          str := 'Z' ;
  239.          Move(Pb^.Rp,P1x+10,P1y+10) ;
  240.          Text(Pb^.Rp,ADR(str),Length(str)) ;
  241.       END ; (* IF Beschr *)
  242.  
  243.    ELSE
  244.  
  245.       SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  246.  
  247.                                                          (* Z-Achse *)
  248.       Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-1,
  249.                   Pb^.KastenY0+239+Pb^.A.YNull) ;
  250.       Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-1,
  251.                   Pb^.KastenY0-16+Pb^.A.YNull) ;
  252.  
  253.       Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-2,
  254.                   Pb^.KastenY0+239+Pb^.A.YNull) ;
  255.       Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-2,
  256.                   Pb^.KastenY0-16+Pb^.A.YNull) ;
  257.  
  258.       Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+1,
  259.                   Pb^.KastenY0+239+Pb^.A.YNull) ;
  260.       Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+1,
  261.                   Pb^.KastenY0-16+Pb^.A.YNull) ;
  262.       Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+2,
  263.                   Pb^.KastenY0+239+Pb^.A.YNull) ;
  264.       Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+2,
  265.                   Pb^.KastenY0-16+Pb^.A.YNull) ;
  266.  
  267.                                                      (* Kasten um Pfeil *)
  268.  
  269.       OK := AreaMove(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-4,
  270.                             Pb^.KastenY0-16+Pb^.A.YNull+4) ;     (*links unten*)
  271.       OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-4,
  272.                             Pb^.KastenY0-16+Pb^.A.YNull-4) ;     (*links oben *)
  273.       OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+4,
  274.                             Pb^.KastenY0-16+Pb^.A.YNull-4) ;     (*rechts oben*)
  275.       OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+4,
  276.                             Pb^.KastenY0-16+Pb^.A.YNull+4) ;    (*rechts unten*)
  277.       OK := AreaEnd(Pb^.Rp) ;
  278.  
  279.  
  280.       SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  281.  
  282.       Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull,
  283.                   Pb^.KastenY0+239+Pb^.A.YNull) ;
  284.       Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull,
  285.                   Pb^.KastenY0-18+Pb^.A.YNull) ;
  286.  
  287.       Move(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull-3,  (* Pfeil *)
  288.                   Pb^.KastenY0-18+Pb^.A.YNull+3) ;
  289.       Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull,
  290.                   Pb^.KastenY0-18+Pb^.A.YNull) ;
  291.       Draw(Pb^.Rp,Pb^.KastenX0-Pb^.A.YNull+Pb^.A.XNull+3,
  292.                   Pb^.KastenY0-18+Pb^.A.YNull+3) ;
  293.  
  294.       IF Pb^.Beschriftung THEN
  295.          SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  296.                                                               (* unten links*)
  297.          OK := AreaMove(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull-3,
  298.                                Pb^.KastenY0-11+Pb^.A.YNull+3) ;
  299.                                                               (*unten rechts *)
  300.          OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull+9,
  301.                                Pb^.KastenY0-11+Pb^.A.YNull+3) ;
  302.                                                               (*oben rechts*)
  303.          OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull+9,
  304.                                Pb^.KastenY0-11+Pb^.A.YNull-9) ;
  305.                                                               (*oben links *)
  306.          OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull-3,
  307.                                Pb^.KastenY0-11+Pb^.A.YNull-9) ;
  308.          OK := AreaEnd(Pb^.Rp) ;
  309.  
  310.          SetAPen(Pb^.Rp,1) ;
  311.          str := 'Z' ;
  312.          Move(Pb^.Rp,Pb^.KastenX0+8-Pb^.A.YNull+Pb^.A.XNull,
  313.                      Pb^.KastenY0-11+Pb^.A.YNull) ;
  314.          Text(Pb^.Rp,ADR(str),Length(str)) ;
  315.       END (* IF Beschriftung *) ;
  316.    END (* IF *) ;
  317.  
  318. END ZAchseZeichnen;
  319.  
  320.  
  321.  
  322. PROCEDURE RestXAchseZeichnen(VAR Pb: PlotBasePtr) ;  (*********************)
  323.  
  324.  VAR P1x,P1y,P2x,P2y,P3x,P3y: INTEGER ;
  325.      OK : BOOLEAN ;
  326.      str        :  ARRAY[0..10] OF CHAR ;
  327.  
  328.  BEGIN
  329.  
  330.    SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  331.  
  332.    IF Pb^.GrosseBitmap THEN
  333.  
  334.       SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  335.  
  336.       P1x := Pb^.KastenX0+1152-Pb^.A.YNull ;
  337.       P1y := Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull ;
  338.       P2x := Pb^.KastenX0+1152+33-Pb^.A.YNull ;
  339.  
  340.       Move(Pb^.Rp,P1x+1,P1y+1) ;
  341.       Draw(Pb^.Rp,P2x,P1y+1) ;
  342.       Move(Pb^.Rp,P1x+1,P1y-1) ;
  343.       Draw(Pb^.Rp,P2x,P1y-1) ;
  344.  
  345.       P1x :=Pb^.KastenX0+1152+18-Pb^.A.YNull+15 ;
  346.       P1y :=Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull ;
  347.                                                            (* Kasten um Pfeil *)
  348.       OK := AreaMove(Pb^.Rp,P1x-9,P1y-7) ;                 (* oben links *)
  349.       OK := AreaDraw(Pb^.Rp,P1x+2,P1y-7) ;                 (* oben rechts*)
  350.       OK := AreaDraw(Pb^.Rp,P1x+2,P1y+7) ;                 (* unten rechts*)
  351.       OK := AreaDraw(Pb^.Rp,P1x-9,P1y+7) ;                 (* unten links*)
  352.       OK := AreaEnd(Pb^.Rp) ;
  353.  
  354.  
  355.       SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  356.  
  357.       Move(Pb^.Rp,P1x-32,P1y) ;
  358.       Draw(Pb^.Rp,P1x,P1y) ;
  359.  
  360.       Move(Pb^.Rp,P1x-5,P1y-5) ;                      (* Pfeil *)
  361.       Draw(Pb^.Rp,P1x,P1y) ;
  362.       Draw(Pb^.Rp,P1x-5,P1y+5) ;
  363.  
  364.  
  365.       IF Pb^.Beschriftung THEN
  366.          SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  367.  
  368.          OK := AreaMove(Pb^.Rp,P1x-13,P1y+21) ;   (* unten links  *)
  369.          OK := AreaDraw(Pb^.Rp,P1x,P1y+21) ;      (* unten rechts *)
  370.          OK := AreaDraw(Pb^.Rp,P1x,P1y+8) ;       (* oben rechts  *)
  371.          OK := AreaDraw(Pb^.Rp,P1x-13,P1y+8) ;    (* oben links   *)
  372.          OK := AreaEnd(Pb^.Rp) ;
  373.  
  374.          SetAPen(Pb^.Rp,1) ;
  375.  
  376.          str := 'X' ;
  377.          Move(Pb^.Rp,P1x-10,P1y+18) ;
  378.          Text(Pb^.Rp,ADR(str),Length(str)) ;
  379.       END (* IF Beschriftung *) ;
  380.  
  381.  
  382.    ELSE
  383.  
  384.       SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  385.  
  386.       Move(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull+1,
  387.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+1) ;
  388.       Draw(Pb^.Rp,Pb^.KastenX0+403-Pb^.A.YNull,
  389.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+1) ;
  390.       Move(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull+1,
  391.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-1) ;
  392.       Draw(Pb^.Rp,Pb^.KastenX0+403-Pb^.A.YNull,
  393.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-1) ;
  394.  
  395.                                                            (* Kasten um Pfeil *)
  396.       OK := AreaMove(Pb^.Rp,Pb^.KastenX0+401-Pb^.A.YNull-2,      (* oben links *)
  397.                             Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-4) ;
  398.       OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+404-Pb^.A.YNull+2,      (* oben rechts*)
  399.                             Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull-4) ;
  400.       OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+404-Pb^.A.YNull+2,      (* unten rechts*)
  401.                             Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+4) ;
  402.       OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+401-Pb^.A.YNull-2,      (* unten links*)
  403.                             Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull+4) ;
  404.       OK := AreaEnd(Pb^.Rp) ;
  405.  
  406.  
  407.       SetAPen(Pb^.Rp,1) ;                             (* Vordergrundfarbe *)
  408.  
  409.       Move(Pb^.Rp,Pb^.KastenX0+384-Pb^.A.YNull,
  410.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
  411.       Draw(Pb^.Rp,Pb^.KastenX0+404-Pb^.A.YNull,
  412.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
  413.  
  414.       Move(Pb^.Rp,Pb^.KastenX0+401-Pb^.A.YNull,               (* Pfeil *)
  415.                   Pb^.KastenY0-2+Pb^.A.YNull+Pb^.A.ZNull) ;
  416.       Draw(Pb^.Rp,Pb^.KastenX0+404-Pb^.A.YNull,
  417.                   Pb^.KastenY0+Pb^.A.YNull+Pb^.A.ZNull) ;
  418.       Draw(Pb^.Rp,Pb^.KastenX0+401-Pb^.A.YNull,
  419.                   Pb^.KastenY0+2+Pb^.A.YNull+Pb^.A.ZNull) ;
  420.  
  421.       IF Pb^.Beschriftung THEN
  422.          SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  423.  
  424.                                                               (* unten links*)
  425.          OK := AreaMove(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull-3,
  426.                                Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull+3) ;
  427.                                                               (*unten rechts *)
  428.          OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull+9,
  429.                                Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull+3) ;
  430.                                                                (*oben rechts*)
  431.          OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull+9,
  432.                                Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull-9) ;
  433.                                                               (*oben links *)
  434.          OK := AreaDraw(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull-3,
  435.                                Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull-9) ;
  436.          OK := AreaEnd(Pb^.Rp) ;
  437.  
  438.          SetAPen(Pb^.Rp,1) ;
  439.  
  440.          str := 'X' ;
  441.          Move(Pb^.Rp,Pb^.KastenX0+397-Pb^.A.YNull,
  442.                      Pb^.KastenY0+12+Pb^.A.YNull+Pb^.A.ZNull) ;
  443.          Text(Pb^.Rp,ADR(str),Length(str)) ;
  444.       END (* IF Beschriftung *) ;
  445.    END (* IF Grosse BitMap *) ;
  446.  
  447. END RestXAchseZeichnen;
  448.  
  449.  
  450.  
  451. PROCEDURE RestYAchseZeichnen(VAR Pb: PlotBasePtr) ;  (*********************)
  452.  
  453.  VAR P1x,P1y,P2x,P2y : INTEGER ;
  454.      OK : BOOLEAN ;
  455.      str        :  ARRAY[0..10] OF CHAR ;
  456.  
  457.  BEGIN
  458.  
  459.     IF Pb^.GrosseBitmap THEN
  460.        SetAPen(Pb^.Rp,0) ;                                (* Hintergrundfarbe *)
  461.  
  462.        P1x := Pb^.KastenX0-432+Pb^.A.XNull-15 ;      (* Pfeilspitze *)
  463.        P1y := Pb^.KastenY0+432+Pb^.A.ZNull+15 ;
  464.  
  465.        Move(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull-1,
  466.                    Pb^.KastenY0+432+Pb^.A.ZNull+1) ;
  467.        Draw(Pb^.Rp,P1x-1,P1y+1) ;
  468.  
  469.        Move(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull-1,
  470.                    Pb^.KastenY0+432+Pb^.A.ZNull+2) ;
  471.        Draw(Pb^.Rp,P1x-1,P1y+2) ;
  472.  
  473.        Move(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull-2,
  474.                    Pb^.KastenY0+432+Pb^.A.ZNull+1) ;
  475.        Draw(Pb^.Rp,P1x-2,P1y+1) ;
  476.  
  477.        Move(Pb^.Rp,Pb^.KastenX0-432+Pb^.A.XNull-3,
  478.                    Pb^.KastenY0+432+Pb^.A.ZNull+1) ;
  479.        Draw(Pb^.Rp,P1x-3,P1y+1) ;
  480.  
  481.  
  482.                                                           (* Kasten um Pfeil *)
  483.  
  484.        OK := AreaMove(Pb^.Rp,P1x-4,P1y-4) ;    (* links oben *)
  485.        OK := AreaDraw(Pb^.Rp,P1x+10,P1y-4) ;   (* rechts oben *)
  486.        OK := AreaDraw(Pb^.Rp,P1x+10,P1y+2) ;  (* rechts unten *)
  487.        OK := AreaDraw(Pb^.Rp,P1x-4,P1y+2) ;   (* links unten *)
  488.        OK := AreaEnd(Pb^.Rp) ;
  489.  
  490.  
  491.        SetAPen(Pb^.Rp,1) ;                                (* Vordergrundfarbe *)
  492.  
  493.        Move(Pb^.Rp,Pb^.KastenX0+Pb^.A.XNull-432,
  494.                    Pb^.KastenY0+Pb^.A.ZNull+432) ;
  495.        Draw(Pb^.Rp,P1x,P1y) ;
  496.                                                              (* Pfeil *)
  497.        Move(Pb^.Rp,P1x-2,P1y-2) ;
  498.        Draw(Pb^.Rp,P1x,P1y) ;
  499.        Draw(Pb^.Rp,P1x+8,P1y-2) ;
  500.  
  501.        IF Pb^.Beschriftung THEN
  502.           SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  503.  
  504.                                                           (* Kasten ums Y *)
  505.           OK := AreaMove(Pb^.Rp,P1x-3,P1y+16) ;    (* unten links  *)
  506.           OK := AreaDraw(Pb^.Rp,P1x+10,P1y+16) ;   (* unten rechts *)
  507.           OK := AreaDraw(Pb^.Rp,P1x+10,P1y+4) ;    (* oben rechts  *)
  508.           OK := AreaDraw(Pb^.Rp,P1x-3,P1y+4) ;     (* oben links   *)
  509.           OK := AreaEnd(Pb^.Rp) ;
  510.  
  511.           SetAPen(Pb^.Rp,1) ;
  512.  
  513.           str := 'Y' ;
  514.           Move(Pb^.Rp,P1x,P1y+13) ;
  515.           Text(Pb^.Rp,ADR(str),Length(str)) ;
  516.        END (* IF Beschriftung *) ;
  517.  
  518.     ELSE
  519.  
  520.        SetAPen(Pb^.Rp,0) ;                                (* Hintergrundfarbe *)
  521.  
  522.        Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull-1,
  523.                    Pb^.KastenY0+144+Pb^.A.ZNull+1) ;
  524.        Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-1,
  525.                    Pb^.KastenY0+152+Pb^.A.ZNull+1) ;
  526.  
  527.        Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull-1,
  528.                    Pb^.KastenY0+144+Pb^.A.ZNull+2) ;
  529.        Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-1,
  530.                    Pb^.KastenY0+152+Pb^.A.ZNull+2) ;
  531.  
  532.        Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull-2,
  533.                    Pb^.KastenY0+144+Pb^.A.ZNull+1) ;
  534.        Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-2,
  535.                    Pb^.KastenY0+152+Pb^.A.ZNull+1) ;
  536.  
  537.        Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull-3,
  538.                    Pb^.KastenY0+144+Pb^.A.ZNull+1) ;
  539.        Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-3,
  540.                    Pb^.KastenY0+152+Pb^.A.ZNull+1) ;
  541.  
  542.  
  543.                                                           (* Kasten um Pfeil *)
  544.  
  545.        OK := AreaMove(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-3,    (* links oben *)
  546.                              Pb^.KastenY0+152+Pb^.A.ZNull-3) ;
  547.  
  548.        OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull+6,   (* rechts oben *)
  549.                              Pb^.KastenY0+152+Pb^.A.ZNull-3) ;
  550.  
  551.        OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull+6,  (* rechts unten *)
  552.                              Pb^.KastenY0+152+Pb^.A.ZNull+2) ;
  553.  
  554.        OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull-3,   (* links unten *)
  555.                              Pb^.KastenY0+152+Pb^.A.ZNull+2) ;
  556.  
  557.        OK := AreaEnd(Pb^.Rp) ;
  558.  
  559.  
  560.        SetAPen(Pb^.Rp,1) ;                                (* Vordergrundfarbe *)
  561.  
  562.        Move(Pb^.Rp,Pb^.KastenX0-144+Pb^.A.XNull,
  563.                    Pb^.KastenY0+144+Pb^.A.ZNull) ;
  564.        Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull,
  565.                    Pb^.KastenY0+152+Pb^.A.ZNull) ;
  566.  
  567.        Move(Pb^.Rp,Pb^.KastenX0-152-1+Pb^.A.XNull,       (* Pfeil *)
  568.                    Pb^.KastenY0+152-1+Pb^.A.ZNull) ;
  569.        Draw(Pb^.Rp,Pb^.KastenX0-152+Pb^.A.XNull,
  570.                    Pb^.KastenY0+152+Pb^.A.ZNull) ;
  571.        Draw(Pb^.Rp,Pb^.KastenX0-152+4+Pb^.A.XNull,
  572.                    Pb^.KastenY0-1+152+Pb^.A.ZNull) ;
  573.  
  574.        IF Pb^.Beschriftung THEN
  575.           SetAPen(Pb^.Rp,0) ;                             (* Hintergrundfarbe *)
  576.  
  577.                                                             (* Kasten ums Y *)
  578.           OK := AreaMove(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull-3, (* unten links*)
  579.                                 Pb^.KastenY0+164+Pb^.A.ZNull+3) ;
  580.                                                                (*unten rechts *)
  581.           OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull+9,
  582.                                 Pb^.KastenY0+164+Pb^.A.ZNull+3) ;
  583.                                                                (*oben rechts*)
  584.           OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull+9,
  585.                                 Pb^.KastenY0+164+Pb^.A.ZNull-9) ;
  586.                                                                (*oben links *)
  587.           OK := AreaDraw(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull-3,
  588.                                 Pb^.KastenY0+164+Pb^.A.ZNull-9) ;
  589.           OK := AreaEnd(Pb^.Rp) ;
  590.  
  591.           SetAPen(Pb^.Rp,1) ;
  592.  
  593.           str := 'Y' ;
  594.           Move(Pb^.Rp,Pb^.KastenX0-153+Pb^.A.XNull,
  595.                       Pb^.KastenY0+164+Pb^.A.ZNull) ;
  596.           Text(Pb^.Rp,ADR(str),Length(str)) ;
  597.        END (* IF Beschriftung *) ;
  598.     END (* IF GrosseBitmap *)
  599.  
  600. END RestYAchseZeichnen;
  601.  
  602.  
  603.  
  604. END PlotZeichnen2.
  605.  
  606.  
  607.